#ifndef __MYSTRING_H_
#define __MYSTRING_H_
#include <iostream>

class MyString
{
public:
    MyString();
    //带参构造
    MyString(const char* str);//MyString (const MyString& str);
    ~MyString();
    //拷贝构造
    MyString(const MyString& str);
    //运算符的重载
    MyString& operator=(const MyString&str);//MyString operator=(const MyString& str);返回值的是左值，所以要加引用；
    
    MyString& operator+=(const MyString& str);
    void operator+=(const char & c);
    MyString operator+(const MyString& str);

    MyString& operator-=(const MyString& str);
    MyString operator-(const MyString& str);

    char& operator[](int index);//参数是下标,返回值是字符
    
    bool operator==(const MyString &str);
    bool operator!=(const MyString &str);

    friend std::ostream & operator<<(std::ostream &os, const MyString& str);
    friend std::istream & operator>>(std::istream &is, MyString& str);

private:
    char *s;
    int capacity;//数组的大小
    int size;//元素的长度


};

std::ostream & operator<<(std::ostream &os, const MyString& str);
std::istream & operator>>(std::istream &is, MyString& str);

#endif